package com.woniu.project.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniu.project.core.domain.Store;
import com.woniu.project.dto.StoreDto;
import com.woniu.project.dto.StoreManagementDto;
import com.woniu.project.params.SelectParam;
import com.woniu.project.params.StoreManagementParams;
import com.woniu.project.params.StoreParams;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Klaus
 * @since 2020-10-15
 */
public interface StoreService extends IService<Store> {

    /**
     * 分页查询所有的仓库
     * page:页数 默认值 1
     * size:每页条数 默认值 10
     * @return
     */
    IPage<StoreDto> selectAllStore(SelectParam selectParam);

    /**
     * 按条件查询仓库(分页)
     * page:页数 默认值 1
     * size:每页条数 默认值 10
     * StoreParams:仓库名称或联系人名称或联系人手机号
     * StoreStatus:仓库状态 使用/停用
     * @param selectParam
     * @return
     */
    IPage<StoreManagementDto> selectStoreByCondition(SelectParam selectParam);

    /**
     * 根据ID查询仓库
     * @param storeId
     * @return
     */
    StoreDto selectStoreById(String storeId);

    /**
     * 新增仓库信息
     * 必填参数：
     * StoreName：仓库名称
     * managementid ：仓库管理员的ID
     * StoreStatus ：仓库状态
     * StoreAddr：仓库地址
     *
     * @return
     */
    void insertStore(StoreParams storeParams);


    /**
     * 修改仓库信息
     * 必填参数：
     * storeId:仓库编号
     * StoreName：仓库名称
     * managementid ：仓库管理员的ID
     * StoreStatus ：仓库状态
     * StoreAddr：仓库地址
     * @param storeParams
     * @return
     */
    void updateStoreById(StoreParams storeParams);

    /**
     * 按仓库ID删除仓库
     * @param storeId
     * @return
     */
    void deleteStoreById(String storeId);
}
